package com.minimalist.common.entity.lindi.po;

import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Table;
import com.minimalist.common.config.mybatis.InsertFullColumnHandler;
import com.minimalist.common.config.mybatis.UpdateFullColumnHandler;
import com.minimalist.common.config.mybatis.bo.BaseEntity;


import java.io.Serial;
import java.io.Serializable;

/**
 * 林地指标交易平台_企业注册表 实体类。
 *
 * @author 11987
 * @since 2025-03-31
 */
@Table(value = "LINDI_ENTERPRISE_REGISTRATION", onInsert = InsertFullColumnHandler.class, onUpdate = UpdateFullColumnHandler.class)
public class LindiEnterpriseRegistration extends BaseEntity implements Serializable{

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 企业注册ID
     */
    private Long enterpriseRegistrationId;

    /**
     * 企业名称
     */
    private String enterpriseName;

    /**
     * 企业联系人
     */
    private String enterprisePerson;

    /**
     * 企业联系方式
     */
    private String enterpriseMobile;

    /**
     * 营业执照
     */
    private Long enterpriseBusinessLicense;

    /**
     * 税务登记证
     */
    private Long enterpriseTax;

    /**
     * 企业组织机构代码
     */
    private Long enterpriseCode;

    /**
     * 企业法人身份证正面
     */
    @Column("ENTERPRISE_IDCARD_1")
    private Long enterpriseIdcard1;

    /**
     * 企业法人身份证反面
     */
    @Column("ENTERPRISE_IDCARD_2")
    private Long enterpriseIdcard2;

    /**
     * 授权委托书
     */
    private Long enterpriseAttorney;

    /**
     * 状态 0审核中 1审核通过 2审核未通过
     */
    private Integer status;

    public LindiEnterpriseRegistration() {
    }

    public LindiEnterpriseRegistration(Long enterpriseRegistrationId, String enterpriseName, String enterprisePerson, String enterpriseMobile, Long enterpriseBusinessLicense, Long enterpriseTax, Long enterpriseCode, Long enterpriseIdcard1, Long enterpriseIdcard2, Long enterpriseAttorney, Integer status) {
        this.enterpriseRegistrationId = enterpriseRegistrationId;
        this.enterpriseName = enterpriseName;
        this.enterprisePerson = enterprisePerson;
        this.enterpriseMobile = enterpriseMobile;
        this.enterpriseBusinessLicense = enterpriseBusinessLicense;
        this.enterpriseTax = enterpriseTax;
        this.enterpriseCode = enterpriseCode;
        this.enterpriseIdcard1 = enterpriseIdcard1;
        this.enterpriseIdcard2 = enterpriseIdcard2;
        this.enterpriseAttorney = enterpriseAttorney;
        this.status = status;
    }

    public Long getEnterpriseRegistrationId() {
        return enterpriseRegistrationId;
    }

    public void setEnterpriseRegistrationId(Long enterpriseRegistrationId) {
        this.enterpriseRegistrationId = enterpriseRegistrationId;
    }

    public String getEnterpriseName() {
        return enterpriseName;
    }

    public void setEnterpriseName(String enterpriseName) {
        this.enterpriseName = enterpriseName;
    }

    public String getEnterprisePerson() {
        return enterprisePerson;
    }

    public void setEnterprisePerson(String enterprisePerson) {
        this.enterprisePerson = enterprisePerson;
    }

    public String getEnterpriseMobile() {
        return enterpriseMobile;
    }

    public void setEnterpriseMobile(String enterpriseMobile) {
        this.enterpriseMobile = enterpriseMobile;
    }

    public Long getEnterpriseBusinessLicense() {
        return enterpriseBusinessLicense;
    }

    public void setEnterpriseBusinessLicense(Long enterpriseBusinessLicense) {
        this.enterpriseBusinessLicense = enterpriseBusinessLicense;
    }

    public Long getEnterpriseTax() {
        return enterpriseTax;
    }

    public void setEnterpriseTax(Long enterpriseTax) {
        this.enterpriseTax = enterpriseTax;
    }

    public Long getEnterpriseCode() {
        return enterpriseCode;
    }

    public void setEnterpriseCode(Long enterpriseCode) {
        this.enterpriseCode = enterpriseCode;
    }

    public Long getEnterpriseIdcard1() {
        return enterpriseIdcard1;
    }

    public void setEnterpriseIdcard1(Long enterpriseIdcard1) {
        this.enterpriseIdcard1 = enterpriseIdcard1;
    }

    public Long getEnterpriseIdcard2() {
        return enterpriseIdcard2;
    }

    public void setEnterpriseIdcard2(Long enterpriseIdcard2) {
        this.enterpriseIdcard2 = enterpriseIdcard2;
    }

    public Long getEnterpriseAttorney() {
        return enterpriseAttorney;
    }

    public void setEnterpriseAttorney(Long enterpriseAttorney) {
        this.enterpriseAttorney = enterpriseAttorney;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public static LindiEnterpriseRegistrationBuilder builder() {
        return new LindiEnterpriseRegistrationBuilder();
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        if (!super.equals(o)) return false;
        LindiEnterpriseRegistration that = (LindiEnterpriseRegistration) o;
        return java.util.Objects.equals(enterpriseRegistrationId, that.enterpriseRegistrationId) &&
               java.util.Objects.equals(enterpriseName, that.enterpriseName) &&
               java.util.Objects.equals(enterprisePerson, that.enterprisePerson) &&
               java.util.Objects.equals(enterpriseMobile, that.enterpriseMobile) &&
               java.util.Objects.equals(enterpriseBusinessLicense, that.enterpriseBusinessLicense) &&
               java.util.Objects.equals(enterpriseTax, that.enterpriseTax) &&
               java.util.Objects.equals(enterpriseCode, that.enterpriseCode) &&
               java.util.Objects.equals(enterpriseIdcard1, that.enterpriseIdcard1) &&
               java.util.Objects.equals(enterpriseIdcard2, that.enterpriseIdcard2) &&
               java.util.Objects.equals(enterpriseAttorney, that.enterpriseAttorney) &&
               java.util.Objects.equals(status, that.status);
    }

    @Override
    public int hashCode() {
        return java.util.Objects.hash(super.hashCode(), enterpriseRegistrationId, enterpriseName, enterprisePerson, enterpriseMobile, enterpriseBusinessLicense, enterpriseTax, enterpriseCode, enterpriseIdcard1, enterpriseIdcard2, enterpriseAttorney, status);
    }

    @Override
    public String toString() {
        return "LindiEnterpriseRegistration{" +
                "enterpriseRegistrationId=" + enterpriseRegistrationId +
                ", enterpriseName='" + enterpriseName + '\'' +
                ", enterprisePerson='" + enterprisePerson + '\'' +
                ", enterpriseMobile='" + enterpriseMobile + '\'' +
                ", enterpriseBusinessLicense=" + enterpriseBusinessLicense +
                ", enterpriseTax=" + enterpriseTax +
                ", enterpriseCode=" + enterpriseCode +
                ", enterpriseIdcard1=" + enterpriseIdcard1 +
                ", enterpriseIdcard2=" + enterpriseIdcard2 +
                ", enterpriseAttorney=" + enterpriseAttorney +
                ", status=" + status +
                '}';
    }

    public static class LindiEnterpriseRegistrationBuilder {
        private Long enterpriseRegistrationId;
        private String enterpriseName;
        private String enterprisePerson;
        private String enterpriseMobile;
        private Long enterpriseBusinessLicense;
        private Long enterpriseTax;
        private Long enterpriseCode;
        private Long enterpriseIdcard1;
        private Long enterpriseIdcard2;
        private Long enterpriseAttorney;
        private Integer status;

        public LindiEnterpriseRegistrationBuilder enterpriseRegistrationId(Long enterpriseRegistrationId) {
            this.enterpriseRegistrationId = enterpriseRegistrationId;
            return this;
        }

        public LindiEnterpriseRegistrationBuilder enterpriseName(String enterpriseName) {
            this.enterpriseName = enterpriseName;
            return this;
        }

        public LindiEnterpriseRegistrationBuilder enterprisePerson(String enterprisePerson) {
            this.enterprisePerson = enterprisePerson;
            return this;
        }

        public LindiEnterpriseRegistrationBuilder enterpriseMobile(String enterpriseMobile) {
            this.enterpriseMobile = enterpriseMobile;
            return this;
        }

        public LindiEnterpriseRegistrationBuilder enterpriseBusinessLicense(Long enterpriseBusinessLicense) {
            this.enterpriseBusinessLicense = enterpriseBusinessLicense;
            return this;
        }

        public LindiEnterpriseRegistrationBuilder enterpriseTax(Long enterpriseTax) {
            this.enterpriseTax = enterpriseTax;
            return this;
        }

        public LindiEnterpriseRegistrationBuilder enterpriseCode(Long enterpriseCode) {
            this.enterpriseCode = enterpriseCode;
            return this;
        }

        public LindiEnterpriseRegistrationBuilder enterpriseIdcard1(Long enterpriseIdcard1) {
            this.enterpriseIdcard1 = enterpriseIdcard1;
            return this;
        }

        public LindiEnterpriseRegistrationBuilder enterpriseIdcard2(Long enterpriseIdcard2) {
            this.enterpriseIdcard2 = enterpriseIdcard2;
            return this;
        }

        public LindiEnterpriseRegistrationBuilder enterpriseAttorney(Long enterpriseAttorney) {
            this.enterpriseAttorney = enterpriseAttorney;
            return this;
        }

        public LindiEnterpriseRegistrationBuilder status(Integer status) {
            this.status = status;
            return this;
        }

        public LindiEnterpriseRegistration build() {
            return new LindiEnterpriseRegistration(enterpriseRegistrationId, enterpriseName, enterprisePerson, enterpriseMobile, enterpriseBusinessLicense, enterpriseTax, enterpriseCode, enterpriseIdcard1, enterpriseIdcard2, enterpriseAttorney, status);
        }
    }

}
